home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 140 / Gekkan Dennou Club - 2000.1 Vol. 140 (Japan).7z / Gekkan Dennou Club - 2000.1 Vol. 140 (Japan) (Track 1).bin / games / km21 / src / tr_put.has < prev    next >
Encoding:
Text File  |  1999-12-05  |  4.1 KB  |  310 lines

  1. *
  2. * ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  3. *
  4. *    トランプライブラリ
  5. *
  6. *                    by 電魔団\shoryu 1993
  7. *    __tr_put_u?, __tr_put_d? を追加    by 電脳雑技団 1993/10
  8. *
  9. *    (掲載に間に合わせるためにかなりきたない)
  10. *
  11. * ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  12. *1999-11 スーパーバイザで使用するための変更
  13.  
  14.  
  15.  
  16.     .xdef    __tr_put
  17.     .xdef    __tr_put_lh
  18.     .xdef    __tr_put_lq
  19.     .xdef    __tr_put_rh
  20.     .xdef    __tr_put_rq
  21.  
  22.     .xdef    __tr_put_uh    * 追加(93/10)
  23.     .xdef    __tr_put_uq    * 追加(93/10)
  24.     .xdef    __tr_put_dh    * 追加(93/10)
  25.     .xdef    __tr_put_dq    * 追加(93/10)
  26.  
  27. Copy16word    .macro
  28.     move.l    (a0)+,(a1)+
  29.     move.l    (a0)+,(a1)+
  30.     move.l    (a0)+,(a1)+
  31.     move.l    (a0)+,(a1)+
  32.     move.l    (a0)+,(a1)+
  33.     move.l    (a0)+,(a1)+
  34.     move.l    (a0)+,(a1)+
  35.     move.l    (a0)+,(a1)+
  36.     .endm
  37.  
  38. ofset16:    .equ    #1024-16*2
  39.  
  40.  
  41. Copy32word    .macro
  42.     Copy16word
  43.     Copy16word
  44.     .endm
  45.  
  46. ofset32    .equ    #1024-32*2
  47.  
  48.  
  49. Copy64word    .macro
  50.     Copy32word
  51.     Copy32word
  52.     .endm
  53.  
  54. ofset64    .equ    #1024-64*2
  55.  
  56.  
  57.  
  58.  
  59. *
  60. *    _tr_put(source,dest)
  61. *
  62. *    source : 表示するトランプデータの格納開始アドレス
  63. *    dest   : 表示を行う左上の点のVRAMアドレス
  64. *    
  65. *
  66. __tr_put:
  67.     movea.l    4(sp),a0    * source addr = a0(トランプバッファ)
  68.     movea.l    8(sp),a1    * dest addr   = a1(G-VRAM)
  69.     moveq    #127,d2
  70.     bsr    __tr_put_sub
  71.     rts
  72.  
  73.  
  74. *
  75. *    a0 にトランプバッファへのポインタ、
  76. *    a1 にG-VRAMアドレス、
  77. *    d2 に表示縦ライン数を入れて呼ぶ。
  78. *
  79. __tr_put_sub:
  80. *    move.w    sr,-(sp)
  81. *    ori.w    #$2000,sr
  82.  
  83. **    movem.l    a1,-(sp)
  84.     movea.l    a1,a2
  85. */    moveq.l    #$81,d0        * B_SUPER ->SUPER
  86. */    movea.l    #0,a1
  87. */    trap    #15
  88.     move.l    d0,d1        * d1にSSP
  89. **    movem.l    (sp)+,a1
  90.     movea.l    a2,a1
  91.     
  92.     move.l    d2,d0
  93. @@:
  94.     Copy64Word        * 1ライン描写
  95.     adda.l    ofset64,a1
  96.     tst    d0
  97.     dbeq    d0,@B
  98.     
  99.     btst    #0,d1
  100.     bne    @F
  101.  
  102. */    moveq.l    #$81,d0        * B_SUPER ->USER
  103. */    movea.l    d1,a1
  104. */    trap    #15
  105.     
  106. *    move.w    (sp)+,sr
  107.     
  108. @@:
  109.     rts
  110.  
  111.  
  112.  
  113. *
  114. *    _tr_put_uh(source,dest)
  115. *
  116. *    上半分だけ表示
  117. *
  118. __tr_put_uh:
  119.     movea.l    4(sp),a0
  120.     movea.l    8(sp),a1
  121.     moveq    #63,d2
  122.     bsr    __tr_put_sub
  123.     rts
  124.  
  125.  
  126. *
  127. *    _tr_put_uq(source,dest)
  128. *
  129. *    上4分の1だけ表示
  130. *
  131. __tr_put_uq:
  132.     movea.l    4(sp),a0
  133.     movea.l    8(sp),a1
  134.     moveq    #31,d2
  135.     bsr    __tr_put_sub
  136.     rts
  137.  
  138.  
  139. *
  140. *    _tr_put_dh(source,dest)
  141. *
  142. *    下半分だけ表示
  143. *
  144. __tr_put_dh:
  145.     movea.l    4(sp),a0
  146.     movea.l    8(sp),a1
  147.     adda.l    #(64*2)*(64),a0        * バッファ開始位置
  148.     moveq    #63,d2
  149.     bsr    __tr_put_sub
  150.     rts
  151.  
  152.  
  153. *
  154. *    _tr_put_dq(source,dest)
  155. *
  156. *    下4分の1だけ表示
  157. *
  158. __tr_put_dq:
  159.     movea.l    4(sp),a0
  160.     movea.l    8(sp),a1
  161.     adda.l    #(64*2)*(64+32),a0
  162.     moveq    #31,d2
  163.     bsr    __tr_put_sub
  164.     rts
  165.  
  166.  
  167.  
  168.  
  169. *
  170. *    _tr_put_lh(source,dest)
  171. *
  172. *    左半分だけ表示の怠慢モード
  173. *
  174. __tr_put_lh:
  175.     movea.l    4(sp),a0
  176.     movea.l    8(sp),a1
  177.     
  178.     movea.l    a1,a2
  179.     moveq.l    #$81,d0
  180.     movea.l    #0,a1
  181.     trap    #15
  182.     move.l    d0,d1
  183.     movea.l    a2,a1
  184.     
  185.     move.l    #127,d0
  186. @@:
  187.     Copy32Word
  188.     adda.l    #32*2,a0
  189.     adda.l    ofset32,a1
  190.     tst    d0
  191.     dbeq    d0,@B
  192.     
  193.     btst    #0,d1
  194.     bne    @F
  195.     moveq.l    #$81,d0
  196.     movea.l    a2,a1
  197.     trap    #15
  198. @@:
  199.     rts
  200.  
  201.  
  202.  
  203.  
  204. *
  205. *    _tr_put_lq(source,dest)
  206. *
  207. *    左1/4だけ表示の超怠慢モード
  208. *
  209. __tr_put_lq:
  210.     movea.l    4(sp),a0
  211.     movea.l    8(sp),a1
  212.     
  213.     movea.l    a1,a2
  214.     moveq.l    #$81,d0
  215.     movea.l    #0,a1
  216.     trap    #15
  217.     move.l    d0,d1
  218.     movea.l    a2,a1
  219.     
  220.     move.l    #127,d0
  221. @@:
  222.     Copy16Word
  223.     adda.l    #(64-16)*2,a0
  224.     adda.l    ofset16,a1
  225.     tst    d0
  226.     dbeq    d0,@B
  227.     
  228.     btst    #0,d1
  229.     bne    @F
  230.     moveq.l    #$81,d0
  231.     movea.l    a2,a1
  232.     trap    #15
  233. @@:
  234.     rts
  235.  
  236.  
  237.  
  238. *
  239. *    _tr_put_rh(source,dest)
  240. *
  241. *    右半分だけ表示の怠慢モード
  242. *
  243. __tr_put_rh:
  244.     movea.l    4(sp),a0
  245.     movea.l    8(sp),a1
  246.     
  247.     movea.l    a1,a2
  248.     moveq.l    #$81,d0
  249.     movea.l    #0,a1
  250.     trap    #15
  251.     move.l    d0,d1
  252.     movea.l    a2,a1
  253.     
  254.     move.l    #127,d0
  255. @@:
  256.     adda.l    #32*2,a0
  257.     Copy32Word
  258.     adda.l    ofset32,a1
  259.     tst    d0
  260.     dbeq    d0,@B
  261.     
  262.     btst    #0,d1
  263.     bne    @F
  264.     moveq.l    #$81,d0
  265.     movea.l    a2,a1
  266.     trap    #15
  267. @@:
  268.     rts
  269.  
  270.  
  271.  
  272.  
  273. *
  274. *    _tr_put_rq(source,dest)
  275. *
  276. *    右1/4だけ表示の超怠慢モード
  277. *
  278. __tr_put_rq:
  279.     movea.l    4(sp),a0
  280.     movea.l    8(sp),a1
  281.     
  282.     movea.l    a1,a2
  283.     moveq.l    #$81,d0
  284.     movea.l    #0,a1
  285.     trap    #15
  286.     move.l    d0,d1
  287.     movea.l    a2,a1
  288.     
  289.     move.l    #127,d0
  290. @@:
  291.     adda.l    #(64-16)*2,a0
  292.     Copy16Word
  293.     adda.l    ofset16,a1
  294.     tst    d0
  295.     dbeq    d0,@B
  296.     
  297.     btst    #0,d1
  298.     bne    @F
  299.     moveq.l    #$81,d0
  300.     movea.l    a2,a1
  301.     trap    #15
  302. @@:
  303.     rts
  304.  
  305.  
  306.  
  307.  
  308. * [ EOF ]
  309.  
  310.